{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import cv2 as cv\n",
    "import numpy as np\n",
    "from matplotlib import pyplot as plt\n",
    "\n",
    "img = cv.imread(\"img/mh/yb_zhandou.jpg\", 0)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 4.7. Canny边缘检测\n",
    "\n",
    "这是一个多阶段算法，我们将了解其中的每个阶段:\n",
    "### 1、降噪\n",
    "由于边缘检测易受图像中的噪声影响，因此第一步是使用5x5高斯滤波器去除图像中的噪声。我们在之前的章节中已经看到了这一点。\n",
    "### 2、计算图像的强度梯度\n",
    "然后在水平和垂直方向上用Sobel核对平滑后的图像进行滤波，以获得水平方向($$ G_{x} $$)和垂直方向($$ G_{y} $$)的一阶导数。从这两个图像中，我们可以找到每个像素的边缘梯度和方向，如下所示：\n",
    "\n",
    "$$ Edge_Gradient\\left ( G \\right )= \\sqrt{G_{x}^{2}+G_{y}^{2}} $$\n",
    "\n",
    "$$ Angle\\left ( \\theta \\right )= tan^{-1}\\left ( \\frac{G_{y}}{G_{x}} \\right ) $$\n",
    "\n",
    "渐变方向始终垂直于边缘。梯度方向被归为四类：垂直，水平，和两个对角线。\n",
    "### 3、非极大值抑制\n",
    "在获得梯度的大小和方向之后，完成图像的全扫描以去除可能不构成边缘的任何不需要的像素。为此，在每个像素处，检查像素是否是其在梯度方向上的邻域中的局部最大值。检查下图：\n",
    "A点位于边缘（垂直方向）。渐变方向与边缘垂直。B点和C点处于梯度方向。因此，用点B和C检查点A，看它是否形成局部最大值。如果是这样，则考虑下一阶段，否则，它被抑制（置零）。\n",
    "简而言之，你得到的结果是具有“细边”的二进制图像。\n",
    "### 4、滞后阈值\n",
    "这个阶段决定哪些边缘都是边缘，哪些边缘不是边缘。为此，我们需要两个阈值，minVal和maxVal。强度梯度大于maxVal的任何边缘肯定是边缘，而minVal以下的边缘肯定是非边缘的，因此被丢弃。位于这两个阈值之间的人是基于其连通性的分类边缘或非边缘。如果它们连接到“可靠边缘”像素，则它们被视为边缘的一部分。否则，他们也被丢弃。见下图： ![img](https://docs.opencv.org/4.0.0/nms.jpg) 边缘A高于maxVal，因此被视为“确定边缘”。虽然边C低于maxVal，但它连接到边A，因此也被视为有效边，我们得到完整的曲线。但边缘B虽然高于minVal并且与边缘C的区域相同，但它没有连接到任何“可靠边缘”，因此被丢弃。所以我们必须相应地选择minVal和maxVal才能获得正确的结果。 假设边是长线，这个阶段也会消除小像素噪声。 所以我们最终得到的是图像中的强边缘。\n",
    "\n",
    "## opencv canny()\n",
    "OpenCV将以上所有步骤放在单个函数cv.Canny()中。我们将看到如何使用它。第一个参数是我们的输入图像。第二个和第三个参数分别是我们的minVal和maxVal。第三个参数是aperture_size,它是用于查找图像渐变的Sobel卷积核的大小。默认情况下它是3。最后一个参数是L2gradient，它指定用于查找梯度幅度的等式。如果它是True，它使用上面提到的更准确的等式，否则它使用这个函数：$$ Edge_Gradient\\left ( G \\right )= \\left | G_{x} \\right |+\\left | G_{y} \\right | $$。默认情况下，它为False。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "edges = cv.Canny(img,100,200)\n",
    "\n",
    "plt.subplot(121),plt.imshow(img,cmap = 'gray')\n",
    "plt.title('Original Image'), plt.xticks([]), plt.yticks([])\n",
    "plt.subplot(122),plt.imshow(edges,cmap = 'gray')\n",
    "plt.title('Edge Image'), plt.xticks([]), plt.yticks([])\n",
    "\n",
    "plt.show()\n"
   ]
  }
 ],
 "metadata": {
  "interpreter": {
   "hash": "d001f9f6bbe9c72b73ec8f1147273505c2b9a823d50002fe074fa723ca99fac9"
  },
  "kernelspec": {
   "display_name": "Python 3.9.7 ('base')",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
